struct MergeSortIterator<T: Ord + Clone> {  
    data: Vec<T>,  
    // TODO: 添加迭代状态字段  
}  

impl<T: Ord + Clone> Iterator for MergeSortIterator<T> {  
    type Item = T;  
    fn next(&mut self) -> Option<Self::Item> {  
        // TODO: 归并排序逻辑  
        None  
    }  
}  

#[test]  
fn test_merge_sort_iter() {  
    let data = vec![5, 3, 4, 1, 2];  
    let sorted: Vec<_> = MergeSortIterator { data }.collect();  
    assert_eq!(sorted, vec![1, 2, 3, 4, 5]);  
}  